#!/usr/bin/env python
# encoding: utf-8
'''
@author: heshengjin-何胜金
@contact: 2356899074@qq.com
@software: pycharm
@file: accessTest.py
@time: 2019/4/21 0021 20:32
@desc:访问属性测试
__xx	这是私有变量， 只有内部可以访问，外部不可以访问。但是也不是一定不可以访问，只要以 _类名__xx样式就可以访问 。但最好不要这样做，养成良好编程习惯
_x	    这是实例变量，可以访问，但是不要轻易访问。按照约定俗成，当你看到这样的变量时，意思就是，“虽然我可以被访问，但请把我视为私有变量，不要随意访问”。
'''


class Hsj(object):
    nickname = '小康'
    _colleage = '云南师范大学'
    __year = '2016/07/01'
    def __init__(self, name, age):
        self._name=name
        self._age=age
    def sayUserInfo(self):
        #格式化参数打印
        print("年龄：%s,姓名：%s" % (self._age,self._name))
        #类似java的String.format
        print("参数1：{param1}，参数2： {param2}".format(param1='001',param2='002'))
        #类似se6
        print(f"年龄{self._age}，姓名{self._name}")

if __name__ == '__main__':
    hsjinstance = Hsj('hsj', 18)
    print(hsjinstance.nickname)
    print(hsjinstance._colleage)
    #实例上面创建新变量_colleage
    hsjinstance._colleage = "云南师范大学002"
    print(hsjinstance._colleage)
    print(Hsj._colleage)
    print(hsjinstance._Hsj__year) # this is true access attr method!
    # print(hsjinstance.__year)   # this is error access attr method!
    hsjinstance.sayUserInfo()
